package web.suzy.oj.shiro;

import lombok.Data;
import org.apache.shiro.cache.Cache;
import org.apache.shiro.cache.CacheException;
import org.apache.shiro.cache.CacheManager;
import web.suzy.oj.utils.RedisUtils;

/**
 * YangSuzy 软件工作室
 * 类名: ShiroCacheManager
 * 描述: Shiro缓存管理器
 * 功能: ---- 待定 -----
 *
 * @author YangSuzy
 * Date: 2022/11/14 16:25
 */
@Data
public class ShiroCacheManager implements CacheManager {
    /**
     * cache存活时间 秒
     */
    private long cacheLive;

    /**
     * cache前缀
     */
    private String cacheKeyPrefix;

    /**
     * redis工具类
     */
    private RedisUtils redisUtils;

    @Override
    public <K, V> Cache<K, V> getCache(String s) throws CacheException {
        return new ShiroCache<K, V>(cacheLive, cacheKeyPrefix, redisUtils);
    }
}
